<HTML
><HEAD
><TITLE
>The /proc filesystem</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.63
"><LINK
REL="HOME"
TITLE="The Linux System Administrator's Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="Overview of the Directory Tree"
HREF="dir-tree-overview.html"><LINK
REL="PREVIOUS"
TITLE="The /var filesystem"
HREF="x595.html"><LINK
REL="NEXT"
TITLE="Device Files"
HREF="device-list.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Linux System Administrator's Guide: Version 0.7</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="x595.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 4. Overview of the Directory Tree</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="device-list.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="AEN672"
>4.7. The <TT
CLASS="FILENAME"
>/proc</TT
> filesystem</A
></H1
><P
>The <TT
CLASS="FILENAME"
>/proc</TT
> filesystem contains a
	illusionary filesystem.  It does not exist on a disk. Instead, the
	kernel creates it in memory.  It is used to provide information
	about the system (originally about processes, hence the name).  Some
	of the more important files and directories are explained below.
	The <TT
CLASS="FILENAME"
>/proc</TT
> filesystem is described in more
	detail in the <TT
CLASS="FILENAME"
>proc</TT
> manual page.

	<DIV
CLASS="GLOSSLIST"
><DL
><DT
><B
><TT
CLASS="FILENAME"
>/proc/1</TT
></B
></DT
><DD
><P
>A directory with information about
		process number 1.  Each process has a directory below
		<TT
CLASS="FILENAME"
>/proc</TT
> with the name being its process
		identification number.	</P
></DD
><DT
><B
><TT
CLASS="FILENAME"
>/proc/cpuinfo</TT
></B
></DT
><DD
><P
>Information about the processor,
		such as its type, make, model, and performance.
		</P
></DD
><DT
><B
><TT
CLASS="FILENAME"
>/proc/devices</TT
></B
></DT
><DD
><P
>List of device drivers configured into the
		currently running kernel.  </P
></DD
><DT
><B
><TT
CLASS="FILENAME"
>/proc/dma</TT
></B
></DT
><DD
><P
>Shows which DMA channels are being used
		at the moment.	</P
></DD
><DT
><B
><TT
CLASS="FILENAME"
>/proc/filesystems</TT
></B
></DT
><DD
><P
>Filesystems configured into the kernel.
		</P
></DD
><DT
><B
><TT
CLASS="FILENAME"
>/proc/interrupts</TT
></B
></DT
><DD
><P
>Shows which interrupts are
		in use, and how many of each there have been.
		</P
></DD
><DT
><B
><TT
CLASS="FILENAME"
>/proc/ioports</TT
></B
></DT
><DD
><P
>Which I/O ports are in use at the moment.
		</P
></DD
><DT
><B
><TT
CLASS="FILENAME"
>/proc/kcore</TT
></B
></DT
><DD
><P
>An image of the physical memory of
		the system.  This is exactly the same size as your
		physical memory, but does not really take up that much
		memory; it is generated on the fly as programs access it.
		(Remember: unless you copy it elsewhere, nothing under
		<TT
CLASS="FILENAME"
>/proc</TT
> takes up any disk space
		at all.)  </P
></DD
><DT
><B
><TT
CLASS="FILENAME"
>/proc/kmsg</TT
></B
></DT
><DD
><P
>Messages output by the kernel.
		These are also routed to <B
CLASS="COMMAND"
>syslog</B
>.
		</P
></DD
><DT
><B
><TT
CLASS="FILENAME"
>/proc/ksyms</TT
></B
></DT
><DD
><P
>Symbol table for the kernel.
		</P
></DD
><DT
><B
><TT
CLASS="FILENAME"
>/proc/loadavg</TT
></B
></DT
><DD
><P
>The `load average' of the system; three
		meaningless indicators of how much work the system has
		to do at the moment.  </P
></DD
><DT
><B
><TT
CLASS="FILENAME"
>/proc/meminfo</TT
></B
></DT
><DD
><P
>Information about memory usage, both
		physical and swap.  </P
></DD
><DT
><B
><TT
CLASS="FILENAME"
>/proc/modules</TT
></B
></DT
><DD
><P
>Which kernel modules are loaded at
		the moment.  </P
></DD
><DT
><B
><TT
CLASS="FILENAME"
>/proc/net</TT
></B
></DT
><DD
><P
>Status information about network
		protocols.  </P
></DD
><DT
><B
><TT
CLASS="FILENAME"
>/proc/self</TT
></B
></DT
><DD
><P
>A symbolic link to the process
		directory of the program that is looking at
		<TT
CLASS="FILENAME"
>/proc</TT
>.  When two processes look at
		<TT
CLASS="FILENAME"
>/proc</TT
>, they get different links.
		This is mainly a convenience to make it easier
		for programs to get at their process directory.
		</P
></DD
><DT
><B
><TT
CLASS="FILENAME"
>/proc/stat</TT
></B
></DT
><DD
><P
>Various statistics about the system, such
		as the number of page faults since the system was booted.
		</P
></DD
><DT
><B
><TT
CLASS="FILENAME"
>/proc/uptime</TT
></B
></DT
><DD
><P
>The time the system has been up.
		</P
></DD
><DT
><B
><TT
CLASS="FILENAME"
>/proc/version</TT
></B
></DT
><DD
><P
>The kernel version.
		</P
></DD
></DL
></DIV
></P
><P
>Note that while the above files tend to be easily readable
	text files, they can sometimes be formatted in a way that is not
	easily digestible.  There are many commands that do little more than
	read the above files and format them for easier understanding. For
	example, the <B
CLASS="COMMAND"
>free</B
> program reads
	<TT
CLASS="FILENAME"
>/proc/meminfo</TT
> and converts the amounts given in
	bytes to kilobytes (and adds a little more information, as
	well).</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="x595.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="device-list.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>The <TT
CLASS="FILENAME"
>/var</TT
> filesystem</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="dir-tree-overview.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Device Files</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>